package cn.cailin.day07.demo10Buffer;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/*
    java.io.BufferedWriter extends Writer
    BufferedWriter:字符缓冲输出流

    继承自父类的共性成员方法:
        -void write(int c)写入单个字符
        -void write(char[] cbuf)写入字符数组。
        -abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分，off数组的开始索引，len写到字符个数。
        -void write(String str)写入字符串。
        -void write(String str,int off,int len)写入字符串的某一部分。off字符串的开始索引，len写的字符个数，
        -void flush()刷新该流的缓冲
        -void close()关闭此流，但要先刷新它。

    构造方法：
        BufferedWriter(Writer out)创建一个使默认大小输出缓冲区的缓冲字符输出流。
        BufferedWriter(Writer out,int sz)创建一个使用给定大小输出缓冲区的新缓冲字符输出流。
        参数：
            Writer out:字符输出流
               我们可以传递FileWriter,缓冲流会给FileWriter增加一个缓冲区，提高FileWriter的写入效率
            int sz:指定缓冲区的大小，不写默认大小
    特有的成员方法:
        void newLine()写入一个行分隔符，会根据不同的操作系统，获取不同的行分隔符
        换行：换行符号
        widows:\r\n
        linux:/n
        mac:/r
    使用步骤：
        1.创建字符缓冲输出流对象。构造方法中传递字符输出流
        2.调用字符缓冲输出流的方法write，把数据写入到内存缓冲区中
        3.调用字符缓冲输出流中的方法flush，把内存缓冲区中的数据刷新到文件中
        4.释放资源

 */
public class Demo03BufferedWriter {
    public static void main(String[] args) throws IOException {
       //1.创建字符缓冲输出流对象。构造方法中传递字符输出流
        BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\IDEA\\day05-code\\src\\cn\\cailin\\abc.txt"));
        //2.调用字符缓冲输出流的方法write，把数据写入到内存缓冲区中
        for (int i = 0; i < 10; i++) {
            bw.write("传智播客");
            bw.write("\r\n");
        }
        //3.调用字符缓冲输出流中的方法flush，把内存缓冲区中的数据刷新到文件中
        bw.flush();
        bw.close();
    }
}
